﻿using JetBrains.Annotations;

namespace MugenMvvmToolkit.Interfaces
{
    /// <summary>
    ///     Represents the condition.
    /// </summary>
    public interface ICondition
    {
        /// <summary>
        ///     Defines the method that determines whether the condition can execute in its current state.
        /// </summary>
        /// <returns>
        ///     true if this condition can be executed; otherwise, false.
        /// </returns>
        /// <param name="parameter">Data used by the condition. If the condition does not require data to be passed, this object can be set to null. </param>
        bool CanExecute([CanBeNull]object parameter);
    }
}